predicate logic proofs